#include<stdlib.h>
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
#include<signal.h>
#include<time.h>

 static char dt[24];
char *mytime(){

   time_t tn = time(NULL);
   struct tm *tmp;


   tmp = localtime(&tn);
   size_t stime = strftime(dt,24,"%F_%T",tmp);
   return dt;
}


void alrmhandler(int sig){
    static int i=0;
    i++;
    system("clear");
    printf("运行了 %d 次， 收到信号 %d 时间是：%s \n",i,sig,mytime());
    if(i== 5) {
        signal(SIGALRM,SIG_IGN);
        printf(" 已经运行了 %d 次，不再接受\n",i);
        fflush(NULL);
        // exit(0);
        kill(getpid(),9);
        
    }
    fflush(NULL);
    // exit(0);
    alarm(2);
    
}
int main(int argc,char **argv){

   int ret;
   system("clear");
   if (signal(SIGALRM,alrmhandler) == SIG_ERR)
   {
        perror("ERROR:");
        exit(0);
   }
   alarm(2);
   while(1);
   return 0;
}